Systems and methods for rendering user interface elements

ABSTRACT

A computer system stores information for a plurality of layouts of one or more user interface elements locally. Each layout corresponds to at least one type of display device, and includes one or more objects associated with the one or more user interface elements. Upon receiving a request for rendering a first user interface element on a display device, the computer system identifies a type of the display device and determines a first one of the at least one type of display device accordingly. The computer system then extracts information for a first layout corresponding to the first one of the at least one type of display device (e.g., information for a subset of objects that is stored with the first layout and corresponds to the first user interface element), and renders the subset of objects corresponding to the first user interface element on the display device accordingly.

RELATED APPLICATION

The present application is a continuation of U.S. Utility patentapplication Ser. No. 16/189,695, filed Nov. 13, 2018, entitled “Systemsand Methods for Rendering User Interface Elements,” which is acontinuation of U.S. Utility patent application Ser. No. 15/695,867,filed Sep. 5, 2017, now U.S. Pat. No. 10,126,926, issued on Nov. 13,2018, entitled “Systems and Methods for Rendering User InterfaceElements in Accordance with a Device Type,” which is a continuation ofU.S. Utility patent application Ser. No. 14/614,369, filed Feb. 4, 2015,entitled “Systems and Methods for Rendering User Interface Elements inAccordance with a Device Type,” now U.S. Pat. No. 9,753,621, issued onSep. 5, 2017, which is a continuation of U.S. Utility patent applicationSer. No. 13/556,109, filed Jul. 23, 2012, entitled “Systems and Methodsfor Rendering User Interface Elements in Accordance with a Device Type,”now U.S. Pat. No. 9,013,510, issued on Apr. 21, 2015, which claimspriority to U.S. Provisional Application Ser. No. 61/513,511, filed Jul.29, 2011, entitled “Systems and Methods for Rendering User InterfaceElements in Accordance with a Device Type.” Each of the above referencesis hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The disclosed implementations relate generally to rendering userinterface elements. More particularly, the disclosed implementationsrelate to methods and systems for rendering user interface elements inaccordance with associated device types.

BACKGROUND

Television devices (e.g., televisions and receivers coupled totelevisions) have been traditionally used to access various televisionprograms. Increasingly, non-television devices (e.g., desktop computers,notebook computers, mobile telephones, etc.), typically used foraccessing other multimedia contents and information from websites andexecuting and displaying programs, are also being used to accesstelevision programs. Conversely, instead of just being used to receiveand display television programming, television devices can also be usedto access other multimedia contents and information from websites and toexecute and display programs.

Non-television devices typically have screens that are smaller thantelevision screens. In addition, television screens, when in use, aretypically located further from users than the screens of thenon-television devices used by respective users. Therefore,non-television devices may be configured to receive touch inputs (e.g.,smart phones with touch sensitive screens) while television devicesoften rely on input methods other than touch inputs (e.g., remotecontrols). Thus, displaying user interface objects on television devicesrequires considerations different from displaying similar user interfaceobjects on non-television devices.

SUMMARY

A number of implementations (e.g., of computer systems or devices, andmethods of operating such systems or devices) that overcome thelimitations and disadvantages described above are presented in moredetail below. These implementations provide methods, systems, andgraphical user interfaces (GUIs) for using rendering one or moreadjustable user interface objects on a television screen.

As described in more detail below, some implementations involve a methodfor rendering one or more user interface elements on a display screen ofa device. The method includes receiving a request for rendering a firstuser interface element without an orientation preference, andidentifying a type of the device. The method also includes, inaccordance with a determination that the type of the device is a firstdevice type corresponding to television devices and the first userinterface element corresponds to a first user interface element type,rendering the first user interface element as a vertical user interfaceelement in a first display region of the display screen.

In accordance with some implementations, a computer system for renderingone or more user interface elements on a display screen of a deviceincludes one or more processors, and memory storing one or moreprograms, for execution by the one or more processors, for rendering theone or more user interface elements on the display screen of the device.The one or more programs include instructions for receiving a requestfor rendering a first user interface element without an orientationpreference, and identifying a type of the device. The one or moreprograms also include instructions for, in accordance with adetermination that the type of the device is a first device typecorresponding to television devices and the first user interface elementcorresponds to a first user interface element type, rendering the firstuser interface element as a vertical user interface element in a firstdisplay region of the display screen.

In accordance with some implementations, a non-transitory computerreadable storage medium stores one or more programs for execution by oneor more processors of a computer system coupled with a device with adisplay screen. The one or more programs include instructions forreceiving a request for rendering a first user interface element withoutan orientation preference, and identifying a type of the device. The oneor more programs also include instruction for, in accordance with adetermination that the type of the device is a first device typecorresponding to a television device and the first user interfaceelement corresponds to a first user interface element type, renderingthe first user interface element as a vertical user interface element ina first display region of the display screen.

Thus, computer systems coupled with devices are provided with improvedmethods for rendering user interface elements. The user interfaceelements are rendered in accordance with the device types, therebyenabling respective users to better utilize the display screen of thedevice and interact efficiently with the user interface elements.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the aforementioned implementations as wellas additional aspects and implementations thereof, reference should bemade to the Description of Implementations below, in conjunction withthe following drawings in which like reference numerals refer tocorresponding parts throughout the figures.

FIG. 1 is a block diagram illustrating an exemplary content distributionsystem, in accordance with some implementations.

FIG. 2 is a block diagram illustrating a computer system, in accordancewith some implementations.

FIGS. 3A-3D illustrate exemplary user interfaces in accordance with someimplementations.

FIG. 4 is a block diagram illustrating an exemplary data structure, inaccordance with some implementations.

FIG. 5 is a flowchart representing a method for rendering a userinterface object in accordance with a device type, in accordance withsome implementations.

Like reference numerals refer to corresponding parts throughout thedrawings.

DETAILED DESCRIPTION

Methods and systems for rendering user interface elements in accordancewith device types are described. Reference will be made to certainimplementations, examples of which are illustrated in the accompanyingdrawings. While the invention will be described in conjunction with theimplementations, it will be understood that the implementations are notintended to limit the invention to these particular implementationsalone.

Moreover, in the following description, numerous specific details areset forth to provide a thorough understanding of the describedimplementations. However, it will be apparent to one of ordinary skillin the art that some implementations may be practiced without theseparticular details. In other instances, methods, procedures, components,and networks that are well-known to those of ordinary skill in the artare not described in detail to avoid obscuring aspects of theimplementations described in this document.

FIG. 1 is a block diagram illustrating an exemplary content distributionsystem 100, according to certain implementations. In FIG. 1, the system100 includes one or more content providers 102 and communicationsnetworks 104. Connected to the communication networks 104 is a companiondevice 114 coupled with a television screen 112 or an integratedtelevision device 116 that includes the television screen 112 andcomponents of the companion device 114. In some implementations, thecompanion device 114 is a set-top box or is a computing device thatincludes set-top box functionality. Various implementations of thecompanion device 114 and/or the integrated television device 116implement the methods described in this document. For the purposes ofthis application, a television screen 112 is any large viewing screen(e.g., in some implementations, a viewing screen 26″ or larger)fabricated using any suitable display technology (e.g., projection, LCD,plasma, OLED, CRT, etc.) that is intended for viewing from a distance ofmore than a few feet and for displaying images—commonly in response tosome manner of remote control.

As used herein, content providers 102 are systems or devices configuredto provide media content (e.g., music, television programs, movies,social media data, web data, etc.). The content providers 102 can be anyof a number of content provider systems, equipment, and/or devices thatprovide media content (e.g., radio broadcasting systems, on-airtelevision broadcasting systems, cable service systems, direct satellitebroadcasting systems, Internet television service servers, Internetradio station servers, web servers, digital video recorders, etc.). Insome implementations, at least a subset of the media contentsdistributed by the content providers 102 includes audio data (e.g.,music, radio programs, television programs, movies, etc.). In someimplementations, at least a subset of the media contents distributed bythe content providers 102 includes video data (e.g., photos, televisionprograms, movies, etc.). In some implementations, at least a subset ofthe media contents distributed by the content providers 102 includesmultimedia data (e.g., television programs, movies, etc.). In someimplementations, at least a subset of the media contents distributed bythe content providers 102 includes user-readable text (e.g., messagessent via short message services, postings on blogs or other socialnetworking media, web pages, etc.).

The content providers 102 distribute media contents via thecommunication networks 104. The communication networks 104 may includeone or more of: radio-frequency communication networks used for on-airor satellite television broadcasting, radio-frequency communicationnetworks used for on-air radio broadcasting, cable-based communicationnetworks, digital audio/video communication networks, the Internet,other wide area networks, local area networks, metropolitan areanetworks, wireless networks, cellular networks, and so on.

In some implementations, the companion device 114 or the integratedtelevision device 116 includes a receiver/converter 106 connected to thecommunication networks 104 and configured to receive audio and/or videosignals, typically via one or more of radio-frequency communicationnetworks and/or one or more digital audio/video communication networks.

In some implementations, the companion device 114 or the integratedtelevision device 116 includes one or more computer communicationnetwork interfaces 108 that are configured for interfacing with one ormore computer communication networks, such as the Internet, other widearea networks, local area networks, metropolitan area networks, wirelessnetworks, cellular networks, and so on.

The companion device 114 or the integrated television device 116 storesand/or executes applications 122. The applications 122 includeapplication programs used for managing the companion device 114 or theintegrated television device 116, including, in some implementations,applications for controlling the display on the television screen ofmedia content from one or more of the content providers 102. Forexample, at least one of the applications 122 is configured to receivedata from the receiver/converter 106 and/or the computer communicationnetwork interface 108 and send data and instructions to a graphicsmodule 110 for rendering media and program content, including userinterfaces and/or user interface objects.

The graphics module 110 includes one or more display processors orgraphics processing units for rendering user interfaces and/or userinterface objects. In some implementations, the graphics module 110receives data from the receiver/converter 106 and/or the computercommunication network interface 108, and additional data or instructionsfrom the applications 122 for rendering user interfaces and/or userinterface objects. The user interfaces and/or user interface objectsrendered by the graphics module 110 are sent to the television screen112 for display. Visual characteristics of the media and program contentdisplayed on the television screen 112 (e.g., the size and detail ofparticular user interfaces and/or interface objects) reflect a number ofdisplay parameters of the television screen 112, including displayresolution, video resolution/pixel density, and size of the televisionscreen 112.

As used herein, the term “resolution” of a display refers to the numberof pixels (also called “pixel counts” or “pixel resolution”) along eachaxis or in each dimension of the display. For example, a display mayhave a resolution of 1920×1080 pixels. Furthermore, as used herein, theterm “resolution” of a device refers to the resolution of a displaycoupled with the device. The term “resolution” does not imply anylimitations on the size of each pixel or the spacing of pixels. Forexample, compared to a first display with a 1920×1080-pixel resolution,a second display with a 1280×720-pixel resolution has a lowerresolution. However, because the physical size of a display depends notonly on the pixel resolution, but also on many other factors, includingthe pixel size and the spacing of pixels, the first display may have thesame, smaller, or larger physical size, compared to the second display.

As used herein, the term “video resolution” of a display refers to thedensity of pixels along each axis or in each dimension of the display.The video resolution is often measured in a dots-per-inch (DPI) unit,which counts the number of pixels that can be placed in a line withinthe span of one inch along a respective dimension of the display.

The companion device 114 or the integrated television device 116 mayinclude additional components not illustrated in FIG. 1.

Also illustrated in FIG. 1 is a personal device 118. The personal device118 may be any of a number of computing devices (e.g., Internet kiosk,personal digital assistant, cell phone, smart phone, gaming device,desktop computer, laptop computer, tablet computer, handheld computer,or combinations thereof) used to enable the activities described below.The personal device 118 includes a display screen 112 where a graphicaluser interface (GUI) can be displayed. In some embodiments, the personaldevice 118 is also configured to receive media content from the contentproviders 102 via the communication networks 104, and display thereceived media content.

In some implementations, the applications 122 can be executed on eitheror both a personal device 118 or a companion device 114, in which casethe application output, including user interface elements, is presentedon either the television screen 112 or the personal device screen 120.For example, an application can be an Android application that can beexecuted on a companion device 114 (such as a Google TV-enabled set-topbox) and a smart phone/personal device 118 (such as an Android phone).This presents the challenge of providing a user-friendly user interfacefor an application 122 based on whether its visual outputs are displayedon a personal device screen 120, where a user may interact with userinterface objects with touch inputs, or on a television screen 112,where the user may interact with user interface objects with other inputmeans (e.g., a directional pad). For example, depending on how the userinterface of an application 122 is configured, the user interfaceelements when displayed horizontally on a television screen 112 might bedifficult to interact with (e.g., located too far away from oneanother). A method is described herein for providing a user-friendlyuser interface for applications 122 that can be executed on both devicetypes 114, 118 by arranging particular user interface elements when displayed on a television with particular di splay characteristics, suchthat the particular user interface elements are located closer to oneanother so that they can be more easily accessed by non-touch-basedinput means (e.g., a directional pad).

FIG. 2 is a block diagram illustrating a computer system 200 inaccordance with some implementations. In some implementations, thecomputer system 200 corresponds to the companion device 114 or theintegrated television device 116 (FIG. 1).

The computer system 200 typically includes one or more processing units(CPUs) 202, graphics module 110, and memory 206. In someimplementations, the computer system 200 also includes one or more of:one or more network or other communications interfaces 108, and one ormore receivers and/or converters 106. The computer system 200 includesone or more communication buses 204 for interconnecting thesecomponents. In some implementations, the communication buses 204 includecircuitry (sometimes called a chipset) that interconnects and controlscommunications between system components. In some other implementations,the computer system 200 includes a user interface (not shown) (e.g., akeyboard, and a mouse or other pointing device). The computer system 200is coupled with the television screen 112, regardless of whether thetelevision screen 112 is integrated with the computer system 200 orlocated outside the computer system 200. The television screen 112 maybe used to display a graphical user interface.

The memory 206 of the computer system 200 includes high-speed randomaccess memory, such as DRAM, SRAM, DDR RAM or other random access solidstate memory devices; and may include non-volatile memory, such as oneor more magnetic disk storage devices, optical disk storage devices,flash memory devices, or other non-volatile solid state storage devices.The memory 206 may optionally include one or more storage devicesremotely located from the CPU(s) 202. The memory 206, or alternately thenon-volatile memory device(s) within the memory 206, comprises anon-transitory computer readable storage medium. In someimplementations, the memory 206 or the computer readable storage mediumof the memory 206 stores the following programs, modules and datastructures, or a subset thereof:

-   -   operating system 210 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   network communication module (or instructions) 212 that is used        for connecting the computer system 200 to the content providers        (e.g., content providers 102, FIG. 1) via one or more network        interfaces 108 and one or more communications networks 104 (FIG.        1), such as the Internet, other wide area networks, local area        networks, metropolitan area networks, wireless networks,        cellular networks, and so on;    -   receiver/converter module (or instructions) 214 that is used for        receiving media content from the content providers (e.g.,        content providers 102) via one or more receivers/converters 106        and one or more communications networks 104, such as        radio-frequency audio/video communication networks, cable-based        communication networks, digital audio/video communication        networks, and so on;    -   application service module 216 that provides various services to        the applications 122;    -   applications 122 that include various applications executed by        the one or more processing units 202 causing the computer system        200 to perform certain operations (e.g., a media player 220,        which, when executed, displays contents of media data; an email        application 222, which, when executed, displays one or more        email messages, etc.); and    -   data storage 226 that stores various data used by the computer        system 200.

The data storage 226 typically includes device characteristics 228 thatidentify characteristics (e.g., a device type, specifications, operatingmodes, etc.) of the computer system 200 and/or the television screen112. For example, the device characteristics 228 may identify that thecomputer system 200 is coupled with, or embedded in, the televisionscreen 112. Alternatively, the device characteristics may identify thatthe computer system 200 is embedded in a personal device (e.g., thepersonal device 118 in FIG. 1, such as a mobile phone) or that theapplications 122 are stored in the personal device.

In some implementations, the data storage 226 includes media contentstorage 230. The media content storage 230 may store complete media datafor a particular program (e.g., a music file corresponding to an entiresong, multimedia data including an entire length of a television programepisode or a movie, etc.), which may be played at a time desired by auser. The media content storage 230 may store a portion of a particularprogram, which may be used for improving the quality of playing theparticular program (e.g., for caching or for content analysis forfinding related programs and/or services).

In some implementations, the data storage 226 includes user interfaceelements 232. In some implementations, the user interface elements 232include information about user interface elements that are displayed inaccordance with a device type. The user interface elements 232 aredescribed in detail with respect to FIG. 4.

The application service module 216 includes one or more service modulesto provide various application services (e.g., memory management,graphics rendering, etc.) to the applications 122. In someimplementations, the application service module 216 is included in theoperating system 210. In some implementations, the application servicemodule 216 includes a rendering service module 218 for sending dataand/or instructions to the graphics module 110 for rendering userinterfaces and/or user interface objects. In some implementations, therendering service module 218 includes an action bar module 224, which isused for rendering one or more user interface elements (e.g., an actionbar) in accordance with a device type.

In some implementations, the action bar module 224 retrieves one or moreparameters from the user interface elements 232 (e.g., a position and/orsize of each user interface object) for rendering one or more userinterface elements.

Optionally, the memory 206 may include additional applications, modules,or components. In some implementations, the computer system 200 includesadditional components not illustrated in FIG. 2. For example, thecomputer system 200 may include one or more audio modules for generatingand/or amplifying audio signals. The computer system 200 may alsoinclude a security module for protecting the data stored in the computersystem 200.

Each of the above identified modules and applications correspond to aset of instructions for performing one or more functions describedabove. These modules (i.e., sets of instructions) need not beimplemented as separate software programs, procedures or modules, andthus various subsets of these modules may be combined or otherwisere-arranged in various implementations. In some implementations, thememory 206 may store a subset of the modules and data structuresidentified above. Furthermore, the memory 206 may store additionalmodules and data structures not described above.

Notwithstanding the discrete blocks in FIGS. 1 and 2, these figures areintended to provide functional descriptions of some implementationsrather than structural descriptions of functional elements in theimplementations. One of ordinary skill in the art will recognize that anactual implementation might have the functional elements grouped orsplit among various components. In practice, and as recognized by thoseof ordinary skill in the art, items shown separately could be combinedand some items could be separated. For example, in some implementations,the television screen 112 is included in the computer system 200. Inother implementations, the television screen 112 is physically separatedfrom the computer system 200. In some implementations, the CPUs 202 andthe memory 206 are included in a single semiconductor package. In someimplementations, the CPUs 202 and the graphics module 110 are includedin a single semiconductor package. In some implementations, the computersystem 200 is implemented on multiple distributed computer systems. Insome implementations, the rendering service module 218 and/or the actionbar module 224 are integrated into the application service module 216,and the rendering service module 218 and/or the action bar module 224may not exist as separate modules.

The actual number of components used to implement the computer system200 and how features are allocated among them will vary from oneimplementation to another, and may depend in part on the amount of datatraffic that the system must handle during peak usage periods as well asduring average usage periods, and may also depend on the amount of datastored by the computer system 200. Moreover, one or more of the blocks(e.g., the television screen 112, and the receiver/converter 106, etc.)in FIGS. 1 and 2 may be implemented on one or more separate devicesdesigned to provide the described functionality. Although thedescription herein refers to certain features implemented in thetelevision device and the computer system 200, the implementations arenot limited to such distinctions. For example, features described hereinas being part of the computer system 200 can be implemented in whole orin part in the television device, and vice versa.

FIGS. 3A-3D illustrate exemplary user interfaces displayed on atelevision screen 112 and a personal device 118 (e.g., a mobile phone, atablet computer, a notebook computer, a desktop computer, etc.) inaccordance with some implementations. As described above, in someimplementations, the rendering service module 218 adjusts the userinterface displayed on the television screen 112 such that a userinterface configured for the television screen 112, instead of a userinterface configured for a personal device, is displayed. It should benoted that FIGS. 3A-3D are not drawn to scale.

In FIG. 3A, the personal device 118 displays a user interface 308 of arespective application. The personal device 118 also displays a userinterface element 302. The user interface element 302 is sometimescalled herein “an action bar.” The user interface element 302 includes atitle 304 of the respective application, and one or more user interfaceobjects (e.g., user interface objects 306-1 and 306-2), which, whenactivated by a user, initiates respective operations (e.g., save,delete, search, etc.). In some cases, the personal device 118 alsodisplays a user interface element 320, which, when activated, initiatesa predefined operation (e.g., display additional information, etc.).

As used herein, the term “user interface element” refers to a userinterface object, or a set of user interface objects, displayed on adisplay screen of a device. Exemplary user interface elements include,but not limited to, menu bars, title bars, action bars, buttons, etc.

The television screen 112-A displays a corresponding user interface 318of the respective application. The television screen 112 also displays auser interface element 312 that corresponds to the user interfaceelement 302 displayed on the personal device 118. The user interfaceelement 312 includes a title 314 of the respective application, and oneor more user interface objects (e.g., user interface objects 316-1through 316-5), which, when activated by the user, initiates respectiveoperations. In some implementations, the user interface object 316-1corresponds to the user interface object 306-1 and the user interfaceobject 316-2 corresponds to the user interface object 306-2. Asillustrated, the user interface element 312 includes user interfaceobjects that are not included in the user interface element 302 of thepersonal device 118. In some cases, the personal device 118 alsodisplays the user interface element 320, which corresponds to the userinterface element 320 displayed on the personal device 118.

It should be noted that the user interface element 302 is a horizontaluser interface element (e.g., the user interface objects 306-1 and 316-2in the user interface element 302 are positioned horizontally next toone another) and the corresponding user interface element 312 is avertical user interface element (e.g., the user interface objects 316-1through 316-5 in the user interface element 312 are stacked vertically).In some cases, a vertical user interface element is easier for a user toview and also to interact with, using a user input device associatedwith the television screen 112.

FIG. 3B illustrates an exemplary user interface displayed on thetelevision screen 112-B in accordance with some implementations. Theuser interface displayed on the television screen 112-B is similar tothe user interface displayed on the personal device 118. However, inFIG. 3B, the user interface element 312 includes expanded user interfaceobjects 316. In FIG. 3B, the user interface objects 316 are renderedwider than the user interface objects 316 shown in FIG. 3A, enabling theuser interface objects 316 to include additional text (e.g., a name ordescription of a corresponding operation).

In some implementations, the user interface object 316-5, when activatedby the user, initiates a display of additional user interface objects.FIG. 3C illustrates an exemplary user interface, displayed on thetelevision screen 112-C, that includes a display of additional userinterface objects 316-6 through 316-10. As shown in FIG. 3C, in responseto the selection of the user interface object 316-5, the additional userinterface objects 316-6 through 316-10 are displayed near a center ofthe television screen 112-C, in some implementations. In someimplementations, the additional user interface objects 316-6 through316-10 are rendered with a width that enables display of additional text(e.g., names or description of corresponding operations) within theadditional user interface objects.

FIG. 3D illustrates another exemplary user interface, displayed on thetelevision screen 112-D, that includes a display of the additional userinterface objects. As shown in FIG. 3D, in response to the selection ofthe user interface object 316-5, the additional user interface objects316-6 through 316-10 are displayed in line with the other user interfaceelements 316-1 through 316-5, in some implementations.

FIG. 4 is a block diagram illustrating an exemplary data structure forthe user interface elements 232 (FIG. 2), in accordance with someimplementations. In some implementations, the user interface elements232 include all user interface elements that are configured to bedisplayed by respective applications on a respective device (e.g., thepersonal device 118 as well as the companion device 114 or theintegrated television device 116). In other implementations, the userinterface elements 232 include one or more user interface elements 402that are configured to be displayed by respective applications on therespective device based on a type of the respective device (e.g.,whether the device is coupled to, or embedded in, a television screen,or whether the device is a personal device). For example, user interfaceelements that are displayed independently from the type of therespective device may not be included in the user interface elements 232(e.g., the user interface element 320, FIG. 3A).

A respective user interface element 402-1 includes one or more layouts406, each of which includes information for rendering the respectiveuser interface element 402-1. For example, the respective user interfaceelement 402-1 may include a vertical layout for rendering the respectiveuser interface element 402-1 as a vertical user interface element, and ahorizontal layout for rendering the respective user interface element402-1 as a horizontal user interface element. In some implementations,the respective user interface element 402-1 includes a plurality oflayouts, each of which corresponds to a particular device (e.g., atelevision screen with a first screen resolution and/or size, atelevision screen with a second screen resolution and/or size, etc.).Each layout 406 includes the following, or a subset or superset thereof:

-   -   a device type 408, which identifies a type of the respective        device for which the respective user interface element is to be        rendered (e.g., whether the respective device is coupled with,        or embedded in, the television screen 112 or whether the        respective device is a personal device);    -   one or more user interface objects 412, each of which includes        one or more of: an icon to be displayed in the respective user        interface element 402-1, a text to be displayed in the        respective user interface element 402-1, a position and/or size        of the respective user interface object, and a pointer to a        corresponding operation; and    -   (optional) a layout style 410, which identifies whether the        respective user interface element 402-1 is to be displayed as a        vertical user interface element or a horizontal user interface        element. When user interface objects 412 in a respective layout        406 include their respective positions, the respective layout        406 need not include the layout style 410.

The user interface elements 232 may include more or fewer data fields.

In some implementations, when the user interface elements 232 includeall user interface elements that are configured to be displayed on therespective device (including user interface elements that are configuredto be displayed in accordance with the device type and user interfaceelements that are configured to be displayed regardless of the devicetype), the respective user interface element 402-1 includes a userinterface element type 404 that identifies whether the respective userinterface element is configured to be displayed on the respective devicein accordance with the device type. Alternatively, the computer system200 (FIG. 2) may determine that the respective user interface element402-1 is configured to be displayed based on the device type when theuser interface element 402-1 includes multiple layouts 406.

FIG. 5 is a flowchart representing a method 500 for rendering one ormore user interface elements on a display screen of a device. The method500 is performed at a computer system coupled with the device. Forexample, the computer system may be the companion device 114 coupledwith a television device, or the computer system may be embedded in theintegrated television device 116 (FIG. 1). Alternatively, the computersystem may be the personal device 118. The computer system includes oneor more processors and memory storing one or more portable programs, forexecution by the one or more processors, for rendering the one or moreuser interface elements on the display screen. In some implementations,the action bar module 224 (FIG. 2) renders at least one of the one ormore user interface elements on the display screen such that at leastthe one user interface element is rendered based on a layoutcorresponding to the device type. In some implementations, the actionbar module 224 is implemented using features of the Android ActionBarAPI.

The system receives (502) a request for rendering a first user interfaceelement without an orientation preference. For example, an application(e.g., the media player 220 or the email application 222, FIG. 2) sendsto the application service module 216, and the system receives therequest via the application service module 216. The request does notspecify whether the first user interface element is to be rendered as avertical user interface element or a horizontal user interface element.

The system identifies (504) a type of the device. For example, thesystem retrieves the device type information from the devicecharacteristics 228 (FIG. 2).

In accordance with a determination that the type of the device is afirst device type corresponding to television devices and the first userinterface element corresponds to a first user interface element type(e.g., a tab-based user interface element), the system renders (506) thefirst user interface element as a vertical user interface element in afirst display region of the display screen (e.g., the user interfaceelement 312, FIG. 3A). For example, the system determines whether thedevice type retrieved from the device characteristics 228 matches thedevice type 408 for which a respective layout 406-1 (FIG. 4). Inaddition, the system determines whether the first user interface elementis configured to be displayed as a vertical user interface element(e.g., whether the user interface elements 232 include the first userinterface element) prior to rendering the first user interface element.

In some implementations, the vertical user interface element is rendered(508) along a left side of the display screen (e.g., the user interfaceelement 312 that includes vertically arranged user interface objects316, FIG. 3A).

In some implementations, in accordance with a determination that thetype of the device is a second device type corresponding to one or moredevices other than the television devices, the system renders (510) thefirst user interface element as a horizontal user interface element in asecond display region of the display screen. For example, in accordancewith a determination that the type of the device is a personal device(e.g., a mobile phone or a tablet computer), the system renders thefirst user interface element as a horizontal user interface element(e.g., the user interface element 302, FIG. 3A).

In some implementations, the second device type corresponds (512) topersonal devices (e.g., a mobile phone, a table computer, a notebookcomputer, etc.).

In some implementations, the system renders (514) a second userinterface element of a second user interface element type on the displayscreen. The second user interface element, rendered in accordance withthe determination that the type of the device is the first device type,matches the second user interface element rendered in accordance withthe determination that the type of the device is the second device type.For example, the second user interface element type may indicate a userinterface element type that is configured to be rendered independentlyof the type of the device. The user interface element 320 in FIG. 3A isan example of a user interface element of the second user interfacetype. The user interface element 320 rendered on the television screen112-A matches the user interface element 320 rendered on the personaldevice 118. For example, the user interface element 320 rendered on thetelevision screen 112-A rendered on the television screen 112-A may havethe same shape as the user interface element 320 rendered on thepersonal device 118, although their sizes may differ due to differentresolutions, pixel sizes, and/or screen sizes of the television screen112-A and the personal device 118.

In some implementations, the horizontal user interface element isrendered (516) along a top side of the display screen (e.g., the userinterface element 302, FIG. 3A).

In some implementations, the vertical user interface element includes(518) one or more user-selectable user interface objects that are notincluded in the horizontal user interface element (e.g., the userinterface objects 316-3, 316-4, and 316-5, FIG. 3A).

In some implementations, the horizontal user interface element includes(520) one or more user-selectable user interface objects that are notincluded in the vertical user interface element. For example, the userinterface element 302 may include user interface objects not included inthe user interface element 312 (FIG. 3A).

In some implementations, the system detects (522) user selection of thefirst user interface element. In accordance with the determination thatthe type of the device is the first device type, the system expands thefirst user interface element. Alternatively, in accordance with thedetermination that the type of the device is the second device type, thesystem maintains a display of the first user interface element. Forexample, when the user selects the user interface element 312 in FIG.3A, the system may display the user interface element 312 illustrated inFIG. 3B. As used herein, the user selection of the first user interfaceelement refers to a user's selection of any area within the first userinterface element that does not correspond to the user interface objectsincluded in the first user interface element. Thus, the user selectionof the first user interface element does not refer to activation of anyof the user interface objects included in the first user interfaceelement. The user interface element 312 illustrated in FIG. 3B includesexpanded user interface objects 316, thereby providing additionalinformation to the user. However, when the user selects the userinterface element 302 displayed on the personal device 118 (FIG. 3B),the system maintains the display of the user interface element 302(e.g., the system does not expand the user interface element 302).

In some implementations, the system renders (522) one or moreuser-selectable user interface objects in the first user interfaceelement (e.g., the user interface objects 316-1 through 316-5, FIG. 3A),and detects user selection of a respective user interface object of theone or more user-selectable user interface objects. As used herein, theuser selection of the respective user interface object does not refer toan activation of the respective user interface object. Rather, the userselection of the respective user interface object refers to placing aselection indicator (e.g., a cursor or a highlight) on the respectiveuser interface object. In accordance with the determination that thetype of the device is the first device type (e.g., the device is atelevision device), the system expands the respective user interfaceobject. For example, instead of displaying multiple expanded userinterface objects as in FIG. 3B, the system may expand the respectiveuser interface object only. Alternatively, in accordance with thedetermination that the type of the device is the second device type, thesystem maintains a display of the respective user interface object.However, when the user selects a respective user interface object 306-1or 306-2 in displayed on the personal device 118 (FIG. 3B), the systemmaintains the display of the corresponding user interface object (e.g.,the system does not expand the user interface object 306-1 or 306-2).

The foregoing description, for purpose of explanation, has beendescribed with reference to specific implementations. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theimplementations were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious implementations with various modifications as are suited to theparticular use contemplated.

It will be understood that, although the terms first, second, etc. havebeen used herein to describe various elements, these elements should notbe limited by these terms. These terms are only used to distinguish oneelement from another. For example, a first angle could be termed asecond angle, and, similarly, a second angle could be termed a firstangle. The first angle and the second angle are both angles, but theyare not the same angle.

The terminology used in the description of the implementations herein isfor the purpose of describing particular implementations only and is notintended to be limiting of the claims. As used in the description of theimplementations and the appended claims and the appended claims, thesingular forms “a,” “an,” and “the” are intended to include the pluralforms as well, unless the context clearly indicates otherwise. It willalso be understood that the term “and/or” as used herein refers to andencompasses any and all possible combinations of one or more of theassociated listed items. It will be further understood that the terms“comprises” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon”or “in response to determining” or “in response to detecting,” dependingon the context. Similarly, the phrase “if it is determined” or “if [astated condition or event] is detected” may be construed to mean “upondetermining” or “in response to determining” or “upon detecting (thestated condition or event)” or “in response to detecting (the statedcondition or event),” depending on the context.

What is claimed is:
 1. A method for rendering one or more user interfaceelements, comprising: at a computer system, the computer systemcomprising one or more processors and memory storing one or moreprograms for execution by the one or more processors: associating a userinterface element with a plurality of layouts, each layout correspondingto a device type and including one or more user interface objectsassociated with the user interface element; identifying a type of adisplay device coupled to the computer system; determining that theidentified type of the display device corresponds to the device type ofa first layout of the plurality of layouts; extracting information ofthe one or more user interface objects of the first layout; andrendering the one or more user interface objects corresponding to theuser interface element on the display device according to the extractedinformation for the first layout.
 2. The method of claim 1, wherein thecomputer system is integrated in the display device or locally coupledto the display device, further comprising: receiving a request forrendering the user interface element on the display device; and storing,in the memory information, for the plurality of layouts associated withthe user interface element.
 3. The method of claim 1, wherein theinformation for each of the one or more user interface objectsassociated with the user interface element identifies one or more of: anicon to be displayed in the user interface element, a text to bedisplayed in the user interface element, a position and a size of therespective user interface object, and an operation associated with therespective user interface object.
 4. The method of claim 1, wherein: theplurality of layouts includes two distinct layouts; a first one of thetwo distinct layouts corresponds to a first television type of displaydevices having a first screen resolution and a first size; and a secondone of the two distinct layouts corresponds to a second television typeof display devices having a second screen resolution and a second sizethat are distinct from the first screen resolution and the first size,respectively.
 5. The method of claim 1, wherein the plurality of layoutsat least includes a vertical layout and a horizontal layout forrendering the user interface element as a vertical user interfaceelement and a horizontal user interface element, respectively.
 6. Themethod of claim 5, wherein: for each layout, the device typecorresponding to the respective layout has a distinct screen resolutionand a distinct size; the identified type of the display devicecorresponding to the device type of the first layout is a first devicetype corresponding to television devices; the first layout is thevertical layout; and the user interface element is rendered as thevertical user interface element according to the first layout.
 7. Themethod of claim 5, wherein: the identified type of the display devicecorresponding to the device type of the first layout is a second devicetype corresponding to one or more personal devices distinct fromtelevision devices; the first layout is the horizontal layout; and theuser interface element is rendered as the horizontal user interfaceelement according to the first layout.
 8. The method of claim 5, whereinrendering the one or more user interface objects corresponding to theuser interface element includes: in accordance with a determination thatthe first layout is the horizontal layout, rendering the user interfaceelement including the one or more user interface objects on the displaydevice along a top side of the display device; and in accordance with adetermination that the first layout is the vertical layout, renderingthe user interface element including the one or more user interfaceobjects on the display device along a left side of the display device.9. The method of claim 5, wherein the user interface element, renderedin accordance with the horizontal layout, matches the user interfaceelement, rendered in accordance with the vertical layout.
 10. The methodof claim 5, wherein the user interface element that corresponds to thevertical layout includes a first plurality of objects, and the userinterface element that corresponds to the horizontal layout includes asecond plurality of objects, and wherein the first plurality of objectsinclude one or more user-selectable user interface objects that are notincluded in the second plurality of objects.
 11. The method of claim 5,wherein the user interface element that corresponds to the verticallayout includes a first plurality of objects, and the user interfaceelement that corresponds to the horizontal layout includes a secondplurality of objects, and wherein the second plurality of objectsinclude one or more user-selectable user interface objects that are notincluded in the first plurality of objects.
 12. A computer system forrendering one or more user interface elements, comprising one or moreprocessors; memory storing one or more programs for execution by the oneor more processors, the one or more programs including instructions for:associating a user interface element with a plurality of layouts, eachlayout corresponding to a device type and including one or more userinterface objects associated with the user interface element;identifying a type of a display device coupled to the computer system;determining that the identified type of the display device correspondsto the device type of a first layout of the plurality of layouts;extracting information of the one or more user interface objects of thefirst layout; and rendering the one or more user interface objectscorresponding to the user interface element on the display deviceaccording to the extracted information for the first layout.
 13. Thecomputer system of claim 12, wherein each layout further has a layoutstyle identifying whether the user interface element is displayed as avertical user interface element or a horizontal user interface element.14. The computer system of claim 12, wherein rendering the one or moreuser interface objects corresponding to the user interface elementfurther comprises: rendering a subset of user-selectable user interfaceobjects in the user interface element; detecting a user selection in thesubset of user-selectable user interface objects; and expanding theselected user interface object.
 15. The computer system of claim 14,wherein the selected user interface object corresponds to a list ofadditional user interface objects, and expanding the selected userinterface object includes displaying the list of additional userinterface objects at a predetermined location separately on the displaydevice while displaying the selected user interface object.
 16. Anon-transitory computer readable storage medium storing one or moreprograms for execution by one or more processors of a computer system,the one or more programs including instructions for: associating a userinterface element with a plurality of layouts, each layout correspondingto a device type and including one or more user interface objectsassociated with the user interface element; identifying a type of adisplay device coupled to the computer system; determining that theidentified type of the display device corresponds to the device type ofa first layout of the plurality of layouts; extracting information ofthe one or more user interface objects of the first layout; andrendering the one or more user interface objects corresponding to theuser interface element on the display device according to the extractedinformation for the first layout.
 17. The non-transitory computerreadable storage medium of claim 16, the one or more programs furthercomprising instructions for: rendering a subset of user-selectable userinterface objects in the user interface element; detecting a userselection in the subset of user-selectable user interface objects; inaccordance with the determination that the identified type of thedisplay device is a first device type, expanding the selected userinterface object; and in accordance with the determination that theidentified type of the display device is a second device type distinctfrom the first device type, maintaining a display of the selected userinterface object.
 18. The non-transitory computer readable storagemedium of claim 16, wherein the one or more user interface objectsinclude a subset of user-selectable user interface objects, and when theuser interface element is rendered as a vertical user interface element,the subset of user-selectable user interface object is configured to beaccessed by non-touch-based input means associated with the displaydevice.
 19. The non-transitory computer readable storage medium of claim16, wherein rendering the one or more user interface objectscorresponding to the user interface element further comprises: renderingthe one or more user interface objects of the user interface element,independently of the identified type of the display device.
 20. Thenon-transitory computer readable storage medium of claim 16, wherein:the plurality of layouts at least include a vertical layout and ahorizontal layout for rendering the user interface element as a verticaluser interface element and a horizontal user interface element,respectively; for each layout, a display device having the correspondingdevice type has a distinct screen resolution and a distinct size; thedevice type associated with the horizontal layout corresponds to atelevision device; and the device type associated with the verticallayout corresponds to one or more personal devices distinct fromtelevision devices.